import axios from 'axios';
import { Toast, Indicator } from 'mint-ui';
let qs = require('qs');

let instance = axios.create({
  // timeout: 30000
});

// dev 模式

// let baseURL = '/api';

// let baseURL = 'http://wx.yunpuvip.com/index.php/Router/Router/doRoute';

// prod 模式

let baseURL = 'http://php.gxgtha.com/index.php/Router/Router/doRoute';

/**
 * 接口请求函数 http
 * @returns 暂时只使用get和post
 */
export default {
  axios: instance,
  all: axios.all,
  spread: axios.spread,
  qsParams: (api, params) => {
    return qs.stringify({
      xml: '{"agency":"' + localStorage.getItem('id') + '","security":"","service":"' + api + '","tokenid":"' + localStorage.getItem('token') + '","params":' +
      (params ? JSON.stringify(params) : '{}') +
      '}'
    })
  },
  /**
   * @param api 参考API.js 必传参数
   * @param params 参数
   * @param success 成功处理函数
   * @param failure 失败处理函数
   * @param error 出错处理函数
   */
  post: function ({
                    api: api,
                    params: params,
                    success: success,
                    failure: failure,
                    error: error
                  }) {
    if (!api) {
      console.log('api required!');
      return;
    }
    instance.post(baseURL, this.qsParams(api, params))
      .then(function (res) {
        if (res.data.error === 0) {
          success && success(res);
        } else if (res.data.error === 1) {
          failure ? failure(res) : alert(res.data.msg);
        }
      }).catch(function (err) {
        if (err.message && err.message.indexOf('timeout') !== -1) {
          Indicator.close();
          return Toast('请求超时');
        }
        error ? error(err) : console.log(err);
    })
  },

  // dev 模式

  // avatarURL: 'http://wx.yunpuvip.com/index.php?g=Portal&m=User&a=avatar_upload',
  // imgURL: 'http://wx.yunpuvip.com/index.php?g=Portal&m=index&a=img_upload',
  // ocrURL: 'http://wx.yunpuvip.com/index.php?g=Portal&m=index&a=ocr_check',

  // prod 模式

  avatarURL: 'http://php.gxgtha.com/index.php?g=Portal&m=User&a=avatar_upload',
  imgURL: 'http://php.gxgtha.com/index.php?g=Portal&m=index&a=img_upload',
  ocrURL: 'http://php.gxgtha.com/index.php?g=Portal&m=index&a=ocr_check',

  // 待定
  get: instance.get
}
